package sk.stuba.fiit.clientApp.service;

import java.io.IOException;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;

import org.bouncycastle.asn1.ASN1ObjectIdentifier;
import org.bouncycastle.tsp.TSPException;
import org.bouncycastle.tsp.TimeStampResponse;
import org.w3._2000._09.xmldsig.SignatureType;

public interface TimeStampService {

	TimeStampResponse obtainInitializationTimeStamp(
			SignatureType signatureType, ASN1ObjectIdentifier algorithmOid,
			String algorithm) throws NoSuchAlgorithmException,
			NoSuchProviderException, IOException, TSPException;

	TimeStampResponse obtainAllDataTimeStamp(SignatureType signatureType,
			ASN1ObjectIdentifier algorithmOid, String algorithm)
			throws NoSuchAlgorithmException, NoSuchProviderException,
			IOException, TSPException;

	TimeStampResponse obtainSignatureTimestamp(SignatureType signatureType,
			ASN1ObjectIdentifier algorithmOid, String algorithm)
			throws NoSuchAlgorithmException, NoSuchProviderException,
			IOException, TSPException;

	TimeStampResponse getTimeStampToken(byte[] data,
			ASN1ObjectIdentifier algorithmOid, String algorithm)
			throws NoSuchAlgorithmException, NoSuchProviderException,
			IOException, TSPException;

}
